//选择文件
export const openChoiceFile = (fileTypeList: string[], size?: number) => {
    return new Promise<File>((resolve, reject) => {
        let input: HTMLInputElement | undefined = document.createElement('input');
        input.type = 'file';
        input.accept = fileTypeList.join(',');
        input.multiple = false;
        input.onchange = (e: any) => {
            const file: File = e.target.files[0];
            // 判断文件大小
            if (size && file.size > size) {
                reject(new Error('超出大小限制,不可超过' + (size / 1048576).toFixed(2) + 'M'));
                return;
            }
            //判断文件类型
            if (fileTypeList) {
                let checkType = false;
                for (const type of fileTypeList) {
                    if (file.name.indexOf(type) !== -1) {
                        checkType = true;
                    }
                }
                if (!checkType) {
                    reject(new Error('文件类型错误'));
                    return;
                }
            }
            input = undefined; // 释放dom，避免内存泄漏
            resolve(file); // 输出文件
        };
        input.click();
    });
};